﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class TableDetail : DevComponents.DotNetBar.Controls.SlidePanel
    {
        public DataTable _dataTable = new DataTable();
        public long _tongtien = 0;

        public TableDetail()
        {
            InitializeComponent();
            CreateTable();            
            dataGridViewX1.DataSource = _dataTable;
            
        }

        public void UpdateSize()
        {
            this.Size = new Size(((DevComponents.DotNetBar.Metro.MetroForm)MainForm._mainForm).Size.Width - 20,
                                    this.Size.Height);
        }

        public void ResetField()
        {
            _dataTable.Clear();            
        }

        protected void CreateTable()
        {
            // Cột Tên Sách
            DataColumn column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Tên sách";
            _dataTable.Columns.Add(column);

            // Cột Thể loại            
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Thể loại";
            _dataTable.Columns.Add(column);

            // Cột Tác giả
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Tác giả";
            _dataTable.Columns.Add(column);

            // Cột Năm xuất bản
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int32");
            column.ColumnName = "Năm Xuất Bản";
            _dataTable.Columns.Add(column);

            // Cột Nhà xuất bản
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Nhà Xuất Bản";
            _dataTable.Columns.Add(column);            

            // Cột Giá tiền
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int32");
            column.ColumnName = "Giá tiền";
            _dataTable.Columns.Add(column);

            // Cột Số lượng
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int32");
            column.ColumnName = "Số lượng";
            _dataTable.Columns.Add(column);

            // Cột Tổng tiền
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int64");
            column.ColumnName = "Tổng tiền";            
            _dataTable.Columns.Add(column);
        }

        public void ShowSlide()
        {            
            this.IsOpen = true;
            UpdateSize();
        }

        public void AddRow(DataRow row)
        {
            _dataTable.Rows.Add(row);            
            dataGridViewX1.DataSource = _dataTable;
            _tongtien += (long)row[7];
            lblTongTien.Text = "Tổng tiền = " + _tongtien.ToString();
        }

        private void UpdateTongTien()
        {
            _tongtien = 0;
            foreach (DataRow row in _dataTable.Rows)
            {
                _tongtien += (long)row["Tổng tiền"];
            }
            lblTongTien.Text = "Tổng tiền = " + _tongtien.ToString();
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
            this.IsOpen = false;
        }        

        private void dataGridViewX1_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridViewX1.SelectedRows.Count > 1)
                contextMenuStrip1.Items[0].Enabled = false;
            else
                contextMenuStrip1.Items[0].Enabled = true;
            contextMenuStrip1.Items[1].Enabled = true;
        }

        private void dataGridViewX1_RowLeave(object sender, DataGridViewCellEventArgs e)
        {
            contextMenuStrip1.Items[0].Enabled = false;
            contextMenuStrip1.Items[1].Enabled = false;
        }

        private void deleteToolStrip_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridViewX1.SelectedRows.Count; i++)
                dataGridViewX1.Rows.RemoveAt(dataGridViewX1.SelectedRows[i].Index);
        }

        private void dataGridViewX1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
        {
            UpdateTongTien();
        }

        private void buttonX2_Click(object sender, EventArgs e)
        {
            this.IsOpen = false;
        }
    }
}
